further translation of general_tools