implemented adapter