demos and snippets for self-learning and teaching purpose