Fully-working C# version

The C# version works GREAT thanks to Chris Hardy (@chrisntr). Thanks
for pointing out the garbage collection issue Chris!