generalized login class