adding updated (not finished) and merger commands
too many changes, hehehe, mainly adding some tests, improving for some edge cases, some minirefactorings. I should be more disciplined when commiting :)