refactored runner class