make code more friendly to support action invoke with parameters