private Node<T> add(T o, Node<T> node) {
		if(node == null) {
			node = new Node<T>();
			node.setData(o);
			return node;
		} else if(o.compareTo(node.getData()) < 0) {
			 node.setLeft(add(o, node.getLeft()));
		} else if(o.compareTo(node.getData()) > 0) {
			node.setRight(add(o, node.getRight()));
		}
		return node;
	}