both recipe and options are optional