Use ConnectionInterface instead of implementation

This will allow developers to use custom connection implementation.