add abstract class grant and AuthorizationCode class