hide constructors, but cover them in tests