early demos of design pattern, just for learning