restructure, better for presentation
refine for emacs demo