added ensure option