removed collapse from head/tail, no need for it there
added collapse to diff, changed the argument order, is now source, target