Feature/add transport structure

It can stay if there's a good enough reason, but then that reason needs to be documented. (A comment somewhere nearby will do.)