Tests mostly pass. Need to figure out a way to deal with rounding. Not sure I really care at the moment about it