allow for oAuth and create refresh function