public void insert(Comparable in){
        if(smallest == null || in.compareTo(smallest) < 0)
        {
            smallest = in;
        }
        // Create new node with in as content
        RBNode insertedNode = createNode(in);

        if (root == null)
        {
            insertedNode.color = NodeColor.RED;
            insertedNode.left = null;
            insertedNode.right = null;
            insertedNode.parent = null;
            root = insertedNode;
        }
        else
        {
            RBNode n = root;
            while (true)
            {
                compResult = insertedNode.compareTo(n);
                if (compResult == 0)
                {
                    System.out.println("Duplicate Node error");
                    System.out.println(n + " and " + insertedNode);
                    return;
                }
                else if (compResult < 0)
                {
                    if (n.left == null)
                    {
                        insertedNode.color = NodeColor.RED;
                        insertedNode.left = null;
                        insertedNode.right = null;
                        insertedNode.parent = null;
                        n.left = insertedNode;
                        break;
                    }
                    else
                    {
                        n = n.left;
                    }
                }
                else
                {
                    assert compResult > 0;
                    if (n.right == null)
                    {
                        insertedNode.color = NodeColor.RED;
                        insertedNode.left = null;
                        insertedNode.right = null;
                        insertedNode.parent = null;
                        n.right = insertedNode;
                        break;
                    }
                    else
                    {
                        n = n.right;
                    }
                }
            }
            insertedNode.parent = n;
        }
        insertCase1(insertedNode);
        size++;
    }