4th commit. constructors are mostly working correctly