adapter interface implemented