add reversion support && update requirements