First commit towards separation of concerns