added V2 and some support files

V2 is probably the simplest solution I can code up, but it's even slower
than the original