added insertIfNotExist