add struct demo