add more tests
test on a special case, now buggy
now can pass the test and handle backup callback well when .transform() and .pipe()