adding (and switching to) smarter adapter classes