added timeing option
support for multiple forms of branching
fixed random breakage