Refactoring this branch so that it's easier to maintain