Fix #11. Adjust separation of concerns