add AdapterFactory