Adding adapter pattern + start of facade pattern.