add some diagram to show the design