further refactoring

Remember to work on detailing with Sean!