demo update
refactor