My hubris brought me many bugs that I had to fix, I also changed a bunch of stuff to reduce boilerplate code.