add missing decorator

Signed-off-by: Wei Jin <wjin.cn@gmail.com>
add factory

Signed-off-by: Wei Jin <wjin.cn@gmail.com>