refactor
demo updated