new adapter class