A little more refactoring to make it a bit less reeky, starting to implement 'sequel'