complete add(i, o) i think