added proper constructors