Fixes #5 (closed).
If anyone sees a way to accomplish this with less boilerplate code, I'd be very happy ;-)