why do we have 2 of these adapter classes?