more separation of concerns