https://celery94.github.io/posts/145-simplified-state-management---ise-developer-blog_cn/