Interfaces to implement new tools. Contains interfaces and helper classes.