Got some feedback on how to fix this mess

TODO: Fix this so its not so horriebad.