Replace the pseudo C abomination with a declarative version.

Users will remain anonymous until I find a good solution for name handling.
Thanks to nand for showing me pipes.