To be able to test the classes better and to avoid hard dependencies where's not necessary. This would be a big task, at first it would be a good idea to refactor the most important parts, such as Request/Response, Route, etc.