Greatly changed all of tools/types