Implements a lot