added connector abstraction