Initial commit; flat JS will calculate the rates correctly as expected; I haven't yet had a chance to test this as a Node module yet