Implemented most member functions