middleware should be a regular method