public <P extends PAYLOAD> void add(COLOR[] path, P payload) {
   TreeHolder<COLOR, PAYLOAD> current = tree;
   int i;
   for (i = 0; i < path.length - 1; i++) {
     current = current.trySub(path[i], intermediatePayload);
   }
   current.sub(path[i], payload);
 }
 public ExternalTree<COLOR, PAYLOAD> build() {
   return tree.build();
 }