woooohoooooo... exact calculation slow, but working