structure of single page app