Finished through 15
more refactoring