Fixes #41 introduce Transport interface