added getpass func