a whole lot of boilerplate code, seriously considering collapsing controllers into one seeing as they are literally identical, lets see how it plays out