finish the basic function,but a reconsitution for better effience is pretty necessary