Add socket transport and extra unit tests