adding Connection abstraction