I'll be honest, this is a little confusing. Is there some way to make the separation of instance properties, class properties, and the middleware more clean?