Use reflection, mess up everything

So, I couldn't resist.

It didn't turn out as pretty as I first thought. But that switch-case really bugged me and I thought maybe you'd find it at least interesting to look at.

I didn't port all handlers, due to lazyness.