MainStrategy replaceable via factory pattern