should also be std::sqrt?