http://blog.gainlo.co/index.php/2016/07/25/design-a-garbage-collection-system-part-i/