Separate out the business logic from the stuff that depends on it
Merge pull request 5 from 'paul/separate-business-logic'

Separate out the business logic from the stuff that depends on it.