Now with unit testing because I suck!