Agreed, these can be merged into a combined InventoryHolder (which I will do shortly). The basic intention for keeping an initiator though is to determine, which one actually started the transfer as this can be source or destination. While currently one of the two has to be a hopper, this would already be ambigous in events where one hopper fills another hopper (which might be relevant for example in region-based checks).