basic semantics remain, but have to improve test for new functionality that has to be written for new branch types
surprisingly painless, considering it was more or less a rewrite