some tool write myself