You need some more comments on what these two branches are doing and why.