better separation of concerns