use doubles instead of floats for better precision