add java design "adapter"