refactor action