The implicit restarting technique that provides the algorithmic foundation for the ARPACK eigenvalue package and also for the eigs command in Matlab has recently been generalized. These generalizations provide a family of algorithms suitable for the standard problem Ax = lambda x and for the generalized problem Ax = lambda Bx. We shall discuss how to put these in a unified template form to interface with the required matrix-vector products and/or linear system solves.