adapter model