Do we have to use floating point math here? We really want to avoid any of that usually. (Also can we step down to float?)