rate calculations per package not by order
added some helper functions as well to cleanup some of the code
also made sure the weight tests where using packages instead
of orders and that they still made sense