supports stream/object