some useful library