Continued refactoring, not sure where this is going.