new authentication plugin structure