correct implementation of set, oops