rename `contrib` and `plugin` to middleware