abstract connection