Remove XxxxFactory, use func instead
Add NewXxxx funcs