More abstractions in Adapter pattern + exercise for Bridge pattern