First part of massive refactor to separate the tools.