Re-wrote the tool. Easier to add new stuffs