support for createIfNot