refact tools module , add deep clone method