moved tools specific listeners into the tool