cleanup recipe, divide into its logical parts