minor changes, split out some classes into their own files