some useful tool