implementing Adapters