let middleware be requirable, fixed #8