almost everything precision messd up