added parameterized constructors