Make the concrete context be an implementation class
Local changes
Split into interface/implementation
Merged and passing tests