refactor, mv to demo