@requires need to be updated.