proper constructors added