for std::min