combined into single web app