experimenting with a better separation of concerns