tool class definitions