First commit all the prototype code.

Signed-off-by: Zhao Yi Min <ym.zhao@qiansoon.com>