complete exercise 1 to 3
solve exercise 4
bugfix about Middleware::ErrorHandleFilter