add @Transient to function getAuthorizedGrantTypes() so it does not persist