tasks now must create middleware which -main composes