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); }