or two kinks lurking around, but it now appears to deal with the basic test cases ok.
built using an abstracted state machine with a non-blocking IP wrapper around it. README will follow in the next commit.