One more thought on this:

What about creating a UnspendOutput class, we will can put there:
  `.select(neededAmount, opts)` 
        opts can be allowUnconfimed and sorting related options.
  `.classifyForFree()` => needed, but not sufficient to send a TX without fees.
  `.add(UtxoArray)`
  `.coinDaysDestroyed()`

The transaction.create class, could receive an instance of this class or an array of utxos.