recipe8: add recipe.hpp