use recipes instead of attributes where appropriate