updated Value::KeyCompare (not completed yet)