more refactoring (renamed classes to better reflect what they do)