update app structure, add functional test by selenium