add invoke method