use abstracted tools, introduce tool check command