separate classes for adapters