I wanted to separate the recipe from the callback. It will be easier to extend in the future if needed.