-implemented constructor and destructor