changed semantics of default ctor