added garbage collection & fscking