some useful tools