Lots of cleanup, new implementation files.