added framework for external tools