unique ctor