breaks out a lot of the controller info method into sub methods that will make it easier to override certain functionality while still being able to keep everything else stock