Remove the repeated creation of anonymous classes through Struct.new

* For now just gave it a name and us that instead, logs are now
  much cleaner and probably performance is also better but I dunno
  fully as I didn't get to write a benchmark yet that really
  emulates our performance problems
* tag issue #289
* there is some serious duplication going on... which is prime
  for removal