implementation of the tool