Basic flow implementation

Instead of a tuple of source and destination host objects, let's just have the source host object and the destination address. You can get the source address from the source host object. By not having the destination host object, this prevents possible telepathy.