implementing Adaptor (in progress)