added support for default value and checks; more recipes