refactor udon and redo