chapter 2 demo app(sg)