added a theretically correct ensure method