adds ifAbsentAt:put:andDo: