reorganize tests
use callback instead of complete channel