Closed #2417: Modify the adapter pattern