adding adapter pattern