redoing controller struct because I'm bad