Implemented most methods