worked on constructors