Currently converters just register a function but we also need to be able to make reservations for the destination and also be able to understand how much temporary memory we are going to need in order to perform the conversion. For example if a user wants to make a converter that will first compress the data on the gpu then we need to understand that there is going to be some gpu utilization in order to perform this conversion.