Split things out a bit so it's easier to work on individual components.
Add Recipe class and fix a bug in object-utils.