really fix the ensure* functions