refactor directory structure, add demo directory