First pass at connection abstraction