Refactored Credentials to be an Interface