wip - splitting out connection to separate objects which makes objects a lot cleaner and easier to reuse