broke out some middleware into their own projects