**OMG** this ``initialize()`` is sooooo **huge**.  The rule-of-thumb I tend to follow is, if the whole thing doesn't fit on 25-50 lines, it should probably be divided up into more general functions.  This has three benefits:

1) Tracebacks point you much closer to their source
2) Easier to maintain sequencing
3) Anyone needing to solve a similar discrete problem, can readily copy the one method/function (or include it as part of a more general module).

That said, this is a test, so it's probably fine for now...