A much better time than my previous attempts. Still a lot to iron out and a couple of somewhat substantial errors, but it's definitely the kind of improvement I was looking for.