constructor - second draft