add promise for socketModel's setup, refactored shell -> all login logic into loginViewmodel