write some tools for working more convenient