Now using truncated division instead of floor for performance reasons