Move stuff to individual implementation files