add adapter design patterns.