Commit temporarily
Rewrite gc() with simple mark&sweep GC
Merge remote-tracking branch 'origin/mark_and_sweep-1' into develop