added optional openid support