http://www.reddit.com/r/dailyprogrammer_ideas/comments/22nf8b/intermediatedifficult_garbage_collection