recipe framework (no library yet)