add getpass and error name/pwd handling