add credential file to store username and password and keep out of the repo
generalize a bit