initial recipe refactoring