Making the adapter generic i.e. instead of a A => A, we go A => B