Added method perform_action to substitute current performAction.