Created by: panyx0718
It confuses some developer and adds extra complexity. Besides, it seems we should have pure input/output, reducing special cases.
test=develop