use doIOaction for hub IO action