work on constructors