Refactoring

28 commits full of fun refactoring! I tried to get around... many things
![](http://s3-ec.buzzfed.com/static/2013-10/enhanced/webdr03/17/1/anigif_enhanced-buzz-7163-1381989536-14.gif)