reformatting and make @requires a long operation