Abstract an internal connection

Summary:
Abstract an internal connection for our use. The idea with this, is
to account for the use cases I did not think of. A work around for
users will be to typecast their connection to internal connection
and continue. The requirement can then be analysed and added to the
appropriate api