some useful lib