this sucks cant get the precision right