extract class DemoApp