design the create report pattern