add ToolFactory