moved to parameterized class