add ctor , finalize