use new subtask
coverage
add render test
add more tests for render
test middleware but failed now...
found the bug in the test