add: support middleware / session