* refactor * class name * update demo snapshot * clean up * update snapshot * fix test case * more test case * adjust logic