separation of concerns achieved