Refactored Context and Runner