added ctor/dtor implementation