chapter9 (adapter pattern)