making reverse more generalised.