demo framework