Fully implemented everything