wrap the prototype and demo in strcutured ways