a demo framework