support init func.