Better handling of metadata forwarding, introduce proper source and
client base classes..
Always flush source data..
Make sure source and client are always in flowing mode..