adapter-pattern add