add tool functions