Implemented everything