What's the value in having an interface like this? We don't have a base `Mode` or `Cipher` interface for other things?