guarantee reteturn variant