updated after merge with nosqrt