api changed quite a lot, public constructor, ->recalc() method, some more tests