Middleware separation
Separates the communication between the router and the model into the middleware, the dto workspace is used as a dependency to both middleware and router in order to not replicate code for the structures used by the two workspaces