Add direct transport and initial tests