Refactor transfer to create or update transfer item on the fly

It was original code, will change it to if/else anyway