more refactoring per jason-- this one is kind of excessive...