branching done, added some cool tests