refactoring
refactoring, part 2
clean up includes
more refactoring