Interesting project.
I see in some classes you set the object "self" to "this" and use it later in anonymous functions. That seems to be a common pattern in a lot of peoples code.
It seems like naming the "self" object something more descriptive and specific would make sense in general, but I can't help wondering if there is a more fundamental reason for using "self".
Is this common in OO parlance for a reason?