Fixes #39 introduce Transport interface