added adaptor boilerplate