refactor action class