working but constructors