1. implement streamable dist object