void remove()
    {
        if ( left == null || right == null )
        {
            if ( this.left != null )
                this.left.right = this.right;
            if ( this.right != null )
                this.right.left = this.left;
            if ( this == parent.diagonals )
                parent.diagonals = this.left;
        }
        // only destroy if we are on the edge
    }