restructed key version hierarchy so AESKey extends SymmetricKey which extends KeyVersion