renamed "value_compare" to "value_cmp" to remove a conflict with a C++ library