Adding middleware capabilities--will be split out later
Expressive interface for express middleware
Solidified middleware
All things working, pre split