fix compatibility and performance for _ctor