add Gc methods+optimize