implement different types of revert-warn