fixed processAction()