explain recipe structure