Added prepass in an attempt to reduce the total number of xors
Provided more in the docstring for prepass
Merge branch 'prepass'