attempted 9.8, got kinda close
trying 9.1 and not sure if it's right
added much better (and simpler) solution for 2.2
working on 2.6, still buggy though