add UserFunctionMethodWriter and DefaultMethodWriter