some build-in func and factory func