we should add a @requires for this