some tools in my op way