Split interface from implementation in Context class
This change would increase maintainability of the code and allow us to mock Context class in tests.
This change would increase maintainability of the code and allow us to mock Context class in tests.