Adapter design pattern