no rounding error yet
Cleaner, but still works only for small data set