refactor ease plugin with visitor