change source layout, improve app flow, merge login to app and move util to ext