add constructors, comments