empty, singleton, insert, lookup