private Node<K,V> higher( V value ) {
        if(value == null)
            return null;
        
        Node<K,V> node = mRoot;
        Node<K,V> ret = null;
        
        if(mValueComparator != null) {
            Comparator<? super V> comp = mValueComparator;

            while(node != null) {
                int c = comp.compare(value, node.mValue);
                
                if(c < 0) {
                    ret = node;
                    node = node.mAllLeft;
                }else{
                    node = node.mAllRight;
                }
            }
            
        }else{
            Comparable<? super V> comp = (Comparable<? super V>)value;
            
            while(node != null) {
                int c = comp.compareTo(node.mValue);
                
                if(c < 0) {
                    ret = node;
                    node = node.mAllLeft;
                }else{
                    node = node.mAllRight;
                }
            }
        }
        
        return ret;
    }