refactored recipes and added specs for the tricky bits