james | refactoring out OS logic into strategy pattern