Prep for marketing challenge

mostly switching to middleware + controllers