constructor and destructor completed