update tool, add new functions