Added double buffering to module, it seems this is as advance as the
algo can get. All work from this point on will be about wrapping this in
a class AND setting our old code to work with new code