refactor the trigger impl