added more logic to gc_pointer, gc_table_entry