Download
(150Kb)
Download
Compatible with Retail, Classic & TBC
Updated: 03-22-24 02:22 PM
Pictures
File Info
Compatibility:
Plunderstorm (10.2.6)
Classic (1.15.1)
WOTLK Patch (3.4.3)
Updated:03-22-24 02:22 PM
Created:07-12-15 04:28 PM
Downloads:8,214
Favorites:28
MD5:
Categories:Utility Mods, Group, Guild & Friends
10.2.6

Annoying Pop-up Remover  Updated this week!  Popular! (More than 5000 hits)

Version: v20.1.0-release
by: KyrosKrane [More]

No more "Mother, may I?"

Ever get annoyed by those pop-ups in the game that make you feel like it's an over-protective parent scolding you each time you try something? This add-on is for you! It removes several annoying confirmation dialogs that pop up to warn you you're about to do something, even though it's mostly inconsequential.

  • Looting a bind-on-pickup item.
  • Rolling on a bind-on-pickup item.
  • Depositing a modified item (one that's enchanted, gemmed, or still tradable) into void storage.
  • Selling an item looted in a group while it is still tradable with others who were in the group.
  • Buying an item with an alternate currency cost.
  • Buying an item that is not refundable.
  • Mailing an item you purchased from a vendor while it can still be returned for a refund.
  • Setting your hearthstone location at an innkeeper.
  • Undercutting when selling an item on the auction house. (This is off by default - please don't undercut, it's not needed!)
  • Equipping an item you can return to a vendor for a refund.
  • Selling an item looted in a group while it is still tradable with others who were in the group.
  • Equipping a bind-on-equip item. (This is off by default; you can turn it on in the settings.)
  • Abandoning a quest.
  • Buying a dragonriding talent.
  • Crafting a profession work order using your own reagents or materials.
  • Enabling the ActionCam or other experimental settings.
  • Chatting with NPCs, such as teleporting to the Darkmoon Faire, healing pets at a stable master, or starting pet battles.

In all cases, the add-on hides the dialog and makes the game think you clicked to allow the action. That's it!

In addition, it simplifies the following dialog:
  • Changing the dialog that requires you to type "delete" when deleting a good item into a simple yes/no box.

You can change these settings using the standard addon options screen, or with command line options in the game. Your settings are saved separately for each character, so you can set it up as you like.

Configuration

The easiest way to configure the addon is through the standard Blizzard addon interface. If you want to use the command line instead, type /apr to see your options.

Version Notes

Version 19 revamps the options window and adds French localization - thanks Klep-Ysondre!

Version 18 adds the option to hide the pop-up when you chat with some NPCs, and when using the ActionCam.

So far, I've tested this add-on in a variety of situations, and it seems to work well for all scenarios I've encountered. If you encounter any errors, PLEASE open an issue on Github including the FULL error message and what you were doing when it happened. I also need to know whether you were solo, in a group, or in a raid; and what the group/raid loot settings were (e.g., master loot, NBG, etc., and what the loot threshold was).

Known errors

I tried to include the most common stable masters and pet battles, but I might have missed some. If you see a popup asking you to confirm healing your pets at a stable master or to confirm starting a pet battle, please report it in my Discord server. I'll need to know your player faction (Horde/Alliance) and the name of the pet tamer or stable master you got the popup from.

I've had reports that the addon can interfere with picking up bind-on-pickup items on Classic Era and Wrath Classic servers. Reported examples are fishing up Old Ironjaw or Old Crafty. I've never been able to reproduce this properly, so I don't know what the root cause is or how to fix it. If you are trying for those fish, I suggest disabling the options for looting bind-on-pickup items.

I don't have a toon high enough to test thoroughly on WoW Classic, so if you find any errors, please report them! Preferably open an issue on Github, or if you don't have a Github account, you can post a comment here.

Future update plans

Let me know what you'd like to see in the comments section. Or for live support, visit my Discord server!

Annoying Popup Remover
v20.1.0-release (2024-03-22)
Full Changelog Previous Releases
  • Fix for follower items (#43)
    Equipping items on followers in garrison shipyards (ships), Legion mission tables, and BfA mission tables now requires right clicking the item then clicking the slot you want to use, to work around a Blizzard restriction. You can't pick up the item on your cursor, then drop it directly on the follower slot.
    * Workaround to prevent a lua error due to Blizzard restricting a function
    * Remove unnecessary force-loading of the Blizzard void storage module
    * Clean up documentation and debugging info
Optional Files (0)


Archived Files (84)
File Name
Version
Size
Author
Date
v20.0.1-release
150kB
KyrosKrane
03-19-24 01:33 PM
v20.0.0-release
150kB
KyrosKrane
02-23-24 12:03 PM
v19.1.2-release
147kB
KyrosKrane
02-07-24 11:45 AM
v19.1.1-release
147kB
KyrosKrane
01-16-24 12:55 PM
v19.1.0-release
147kB
KyrosKrane
11-27-23 12:35 PM
v19.0.0-release
147kB
KyrosKrane
11-18-23 03:28 PM
v18.7.2-release
141kB
KyrosKrane
11-16-23 11:24 AM
v18.7.1-release
141kB
KyrosKrane
11-07-23 04:01 PM
v18.7.0-release
141kB
KyrosKrane
10-30-23 09:21 PM
v18.6.0-release
141kB
KyrosKrane
10-27-23 11:46 AM
v18.5.0-release
141kB
KyrosKrane
10-26-23 11:12 PM
v18.4.1-release
141kB
KyrosKrane
10-13-23 12:53 PM
v18.4.0-release
141kB
KyrosKrane
10-09-23 11:19 AM
v18.3.0-release
141kB
KyrosKrane
10-08-23 09:30 PM
v18.2.0-release
141kB
KyrosKrane
09-10-23 09:02 AM
v18.1.0-release
141kB
KyrosKrane
09-05-23 12:07 PM
v18.0.0-release
141kB
KyrosKrane
09-04-23 07:53 PM
v17.2.0-release
135kB
KyrosKrane
08-25-23 04:10 PM
v17.1.0-release
135kB
KyrosKrane
08-11-23 10:17 PM
v17.0.0-release
135kB
KyrosKrane
07-31-23 09:18 AM
v16.0.6-release
133kB
KyrosKrane
07-27-23 10:30 AM
v16.0.5-release
133kB
KyrosKrane
05-22-23 09:02 AM
v16.0.4-release
133kB
KyrosKrane
05-21-23 11:41 AM
v16.0.3-release
132kB
KyrosKrane
05-02-23 10:02 AM
v16.0.2-release
133kB
KyrosKrane
03-21-23 11:04 AM
v16.0.1-release
132kB
KyrosKrane
03-10-23 04:19 PM
v16.0.0-release
132kB
KyrosKrane
03-10-23 04:15 PM
v15.1.0-release
131kB
KyrosKrane
02-07-23 11:15 AM
v15.0.0-release
131kB
KyrosKrane
02-03-23 12:55 PM
v14.4.0-release
129kB
KyrosKrane
02-01-23 04:42 PM
v14.3.0-release
129kB
KyrosKrane
02-01-23 03:22 PM
v14.2.2-release
128kB
KyrosKrane
01-30-23 10:24 AM
v14.2.1-release
128kB
KyrosKrane
11-28-22 04:48 PM
v14.2.0-release
128kB
KyrosKrane
10-25-22 08:49 AM
v14.1.1-release
128kB
KyrosKrane
09-04-22 08:13 PM
v14.1.0-alpha
128kB
KyrosKrane
09-04-22 08:03 PM
v14.0.0-release
126kB
KyrosKrane
05-17-22 12:58 PM
v14.0.0-alpha
126kB
KyrosKrane
05-16-22 10:10 PM
v14.0.0-alpha
126kB
KyrosKrane
05-16-22 10:10 PM
v14.0.0-alpha
126kB
KyrosKrane
05-16-22 10:10 PM
v13.0.1-release
125kB
KyrosKrane
02-22-22 06:10 PM
v13.0.1-release
125kB
KyrosKrane
02-22-22 06:10 PM
v13.0.1-release
125kB
KyrosKrane
02-22-22 06:10 PM
v13.0.1-alpha2
125kB
KyrosKrane
02-22-22 02:52 PM
v13.0.1-alpha2
125kB
KyrosKrane
02-22-22 02:52 PM
v13.0.1-alpha2
125kB
KyrosKrane
02-22-22 02:52 PM
v13.0.1-alpha
125kB
KyrosKrane
02-22-22 01:19 PM
v13.0.1-alpha
125kB
KyrosKrane
02-22-22 01:19 PM
v13.0.1-alpha
125kB
KyrosKrane
02-22-22 01:19 PM
v13.0.1-alpha
125kB
KyrosKrane
02-22-22 12:37 PM
v13.0.1-alpha
125kB
KyrosKrane
02-22-22 12:37 PM
v13.0.1-alpha
125kB
KyrosKrane
02-22-22 12:37 PM
v13.0.0-release
125kB
KyrosKrane
11-29-21 02:53 AM
v13.0.0-alpha
125kB
KyrosKrane
11-29-21 12:37 AM
v13.0.0-alpha
125kB
KyrosKrane
11-29-21 12:37 AM
v13.0.0-alpha
125kB
KyrosKrane
11-29-21 12:37 AM
v12.1.1-release
123kB
KyrosKrane
11-02-21 08:51 PM
v12.1.1-release
123kB
KyrosKrane
11-02-21 08:51 PM
v12.1.1-release
123kB
KyrosKrane
11-02-21 08:51 PM
v12.1.0-release
123kB
KyrosKrane
11-02-21 08:36 PM
v12.1.0-release
123kB
KyrosKrane
11-02-21 08:36 PM
v12.1.0-release
123kB
KyrosKrane
11-02-21 08:36 PM
v12.0.1-release
123kB
KyrosKrane
08-19-21 11:04 PM
v12.0.1-release
123kB
KyrosKrane
08-19-21 11:04 PM
v12.0.1-release
123kB
KyrosKrane
08-19-21 11:04 PM
v12.0.0-release
123kB
KyrosKrane
08-16-21 11:39 PM
v12.0.0-release
123kB
KyrosKrane
08-16-21 11:39 PM
v12.0.0-release
123kB
KyrosKrane
08-16-21 11:39 PM
v11.0.0-release
121kB
KyrosKrane
07-28-21 01:03 PM
v11.0.0-release
121kB
KyrosKrane
07-28-21 01:03 PM
v11.0.0-release
121kB
KyrosKrane
07-28-21 01:03 PM
v11.0.0-alpha2
121kB
KyrosKrane
07-26-21 08:31 PM
v11.0.0-alpha2
121kB
KyrosKrane
07-26-21 08:31 PM
v11.0.0-alpha2
121kB
KyrosKrane
07-26-21 08:31 PM
v11.0.0-alpha
121kB
KyrosKrane
07-26-21 08:15 PM
v11.0.0-alpha
121kB
KyrosKrane
07-26-21 08:15 PM
v11.0.0-alpha
121kB
KyrosKrane
07-26-21 08:15 PM
v10.2.3-release
119kB
KyrosKrane
07-15-21 11:18 AM
v10.2.2-release
119kB
KyrosKrane
07-01-21 04:16 PM
v10.2.1-release
119kB
KyrosKrane
07-01-21 04:12 PM
v10.2-release
119kB
KyrosKrane
06-09-21 10:04 AM
v10.1.2-release
119kB
KyrosKrane
06-01-21 12:26 AM
v10.1.1-release
119kB
KyrosKrane
03-09-21 04:54 PM
v10.1.0-release
119kB
KyrosKrane
03-09-21 03:33 PM


Post A Reply Comment Options
Unread 02-09-23, 11:42 AM  
H0PE
A Fallenroot Satyr
AddOn Author - Click to view AddOns

Forum posts: 28
File comments: 299
Uploads: 1
This is one of the few new favorite addons of mine! Thanks!
Report comment to moderator  
Reply With Quote
Unread 05-23-18, 11:31 AM  
KyrosKrane
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 27
Uploads: 7
I know I haven't posted here in a while, and I apologize for not replying to the last couple of posts. I'm back to developing now, and I'll try to be better about keeping up with feedback.

As to the mail popup, I think that's mostly gone away. I started working on that issue when it was popping up even for mailing to alts, but that was removed by Blizz some time back. The few times I see that pop-up now, it's because I really did mistype a name.

Can anyone confirm the pop-up is happening when it shouldn't? If you can describe how you got it, I can investigate it and see if there's a way to remove it.
Report comment to moderator  
Reply With Quote
Unread 05-11-17, 09:18 PM  
Meltorefas
A Kobold Labourer

Forum posts: 1
File comments: 13
Uploads: 0
Re: Send mail dialog

Originally Posted by themodernsophist
Recently a popup confirmation has been added to my mail interface that forces me to confirm when I send mail that I 'really' want to send to that person.
It always pops up when I send to my alts, but not when I send to strangers.
Is it possible to add this to your addon?
Seconding this request. I cannot find another addon to remove this incredibly annoying and utterly pointless backwards warning popup. If you are still developing at all, please consider adding this feature.
Report comment to moderator  
Reply With Quote
Unread 02-21-17, 11:49 AM  
themodernsophist
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Send mail dialog

Recently a popup confirmation has been added to my mail interface that forces me to confirm when I send mail that I 'really' want to send to that person.
It always pops up when I send to my alts, but not when I send to strangers.
Is it possible to add this to your addon?
I use TSM mailing a lot so this is really annoying and slowing down my mailing operations.

On another note I've noticed some weird looting behavior with the Obliterum Forge. With auto-loot on it loots the first item destroyed, but the second one leaves the loot window open and you have to manually click the items to get them. Is this something the addon could be extended to?

just a few thoughts, no worries if you can't look into these, loving the addon as it is
Report comment to moderator  
Reply With Quote
Unread 07-23-16, 03:39 PM  
Spiderkeg
A Deviate Faerie Dragon

Forum posts: 18
File comments: 285
Uploads: 0
Originally Posted by KyrosKrane
Originally Posted by Spiderkeg
So either there's been quick update in the middle of the night, or you did something differently with your 3.0 release (not beta) but looted primal spirits from herb and ore nodes is no longer asking for the confirmation dialog. The spirits are being looted right into the bags with no problems. Good job.
Blizzard hot-fixed the bug last night. The game now correctly treats primal spirits in a harvesting node as single-person loot, not group loot.

A side effect of this is that I now have a lot of dead code in the addon that I put in to handle that bug, but there's no real harm in leaving it in there. That way, if the bug should ever re-occur, the addon won't barf up an error message on you.
That is probably the most important thing of all, error control. Absolutely no harm, and it's proper, to put in error control to accommodate when things go south. As it was before, when the addon choked, it prevented you from actually looting the primal spirit, requiring the player to deactivate the addon and reload the UI.

If anything, you could remove the dead code and put something more minimal just to prevent the choking from occurring, since in your efforts you were unable to find a real solution to handle that particular problem.
Last edited by Spiderkeg : 07-23-16 at 04:28 PM.
Report comment to moderator  
Reply With Quote
Unread 07-23-16, 03:07 PM  
KyrosKrane
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 27
Uploads: 7
Originally Posted by Spiderkeg
So either there's been quick update in the middle of the night, or you did something differently with your 3.0 release (not beta) but looted primal spirits from herb and ore nodes is no longer asking for the confirmation dialog. The spirits are being looted right into the bags with no problems. Good job.
Blizzard hot-fixed the bug last night. The game now correctly treats primal spirits in a harvesting node as single-person loot, not group loot.

A side effect of this is that I now have a lot of dead code in the addon that I put in to handle that bug, but there's no real harm in leaving it in there. That way, if the bug should ever re-occur, the addon won't barf up an error message on you.
Report comment to moderator  
Reply With Quote
Unread 07-23-16, 02:09 PM  
Spiderkeg
A Deviate Faerie Dragon

Forum posts: 18
File comments: 285
Uploads: 0
So either there's been quick update in the middle of the night, or you did something differently with your 3.0 release (not beta) but looted primal spirits from herb and ore nodes is no longer asking for the confirmation dialog. The spirits are being looted right into the bags with no problems. Good job.
Report comment to moderator  
Reply With Quote
Unread 07-22-16, 07:43 AM  
Spiderkeg
A Deviate Faerie Dragon

Forum posts: 18
File comments: 285
Uploads: 0
Originally Posted by KyrosKrane
Originally Posted by KyrosKrane
I can confirm this is an actual error with APR. Fixing it will be a bit trickier, since I need to reproduce it with my debug version - I'm not sure why it's happening yet. I'll put out a bug fix version as soon as I can.
Turns out this is actually a Blizzard problem. Basically, they're telling the client that someone else, not just you, could get that Primal Spirit. Since it's coming from a harvest, that's impossible.

I've put in a workaround for now, but even with the workaround, you'll still have to manually click the Primal Spirit in the loot window when harvesting. Again, this is another Blizzard bug - the game is ignoring the command to loot into your bag. If you don't have auto loot on, you'll have to click the Spirit twice.

This fix is included in v3.0. I'll push that live tomorrow, after I have a chance to update the documentation.

EDIT: I pushed the beta version live; it's just missing some internal documentation that I'll update tomorrow, along with the addon page.
Okay, I'll check this out.
Report comment to moderator  
Reply With Quote
Unread 07-21-16, 11:09 PM  
KyrosKrane
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 27
Uploads: 7
Originally Posted by KyrosKrane
I can confirm this is an actual error with APR. Fixing it will be a bit trickier, since I need to reproduce it with my debug version - I'm not sure why it's happening yet. I'll put out a bug fix version as soon as I can.
Turns out this is actually a Blizzard problem. Basically, they're telling the client that someone else, not just you, could get that Primal Spirit. Since it's coming from a harvest, that's impossible.

I've put in a workaround for now, but even with the workaround, you'll still have to manually click the Primal Spirit in the loot window when harvesting. Again, this is another Blizzard bug - the game is ignoring the command to loot into your bag. If you don't have auto loot on, you'll have to click the Spirit twice.

This fix is included in v3.0. I'll push that live tomorrow, after I have a chance to update the documentation.

EDIT: I pushed the beta version live; it's just missing some internal documentation that I'll update tomorrow, along with the addon page.
Last edited by KyrosKrane : 07-21-16 at 11:30 PM.
Report comment to moderator  
Reply With Quote
Unread 07-21-16, 07:41 PM  
KyrosKrane
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 27
Uploads: 7
Originally Posted by Spiderkeg
I went to my garrison mine and mined ore until a primal spirit popped, this is the error:

Message: ...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:482: Usage: LootSlot(slot)
Time: 07/21/16 16:36:00
Count: 6
Stack: [C]: in function `ConfirmLootSlot'
...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:482: in function `?'
...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:600: in function <...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:599>
[C]: in function `LootSlot'
Interface\FrameXML\LootFrame.lua:357: in function `LootButton_OnClick'
[string "*:OnClick"]:4: in function <[string "*:OnClick"]:1>

Locals: (*temporary) = nil


Now note that this isn't from a mine cart, but from the ore itself. The same error occurs if I receive a primal spirit while looting an herb from the herb garden that awards me a primal spirit.

I should further add, the lua error actually prevents the looting of the primal spirit, resulting in the loss of the item.

I did delete my cache before logging in and attempting this.
I can confirm this is an actual error with APR. Fixing it will be a bit trickier, since I need to reproduce it with my debug version - I'm not sure why it's happening yet. I'll put out a bug fix version as soon as I can.
Report comment to moderator  
Reply With Quote
Unread 07-21-16, 02:39 PM  
Spiderkeg
A Deviate Faerie Dragon

Forum posts: 18
File comments: 285
Uploads: 0
I went to my garrison mine and mined ore until a primal spirit popped, this is the error:

Message: ...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:482: Usage: LootSlot(slot)
Time: 07/21/16 16:36:00
Count: 6
Stack: [C]: in function `ConfirmLootSlot'
...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:482: in function `?'
...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:600: in function <...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:599>
[C]: in function `LootSlot'
Interface\FrameXML\LootFrame.lua:357: in function `LootButton_OnClick'
[string "*:OnClick"]:4: in function <[string "*:OnClick"]:1>

Locals: (*temporary) = nil


Now note that this isn't from a mine cart, but from the ore itself. The same error occurs if I receive a primal spirit while looting an herb from the herb garden that awards me a primal spirit.

I should further add, the lua error actually prevents the looting of the primal spirit, resulting in the loss of the item.

I did delete my cache before logging in and attempting this.
Last edited by Spiderkeg : 07-21-16 at 02:40 PM.
Report comment to moderator  
Reply With Quote
Unread 07-21-16, 01:04 PM  
KyrosKrane
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 27
Uploads: 7
Originally Posted by Spiderkeg
Originally Posted by Petrah
Perhaps you would consider creating an addon to hide login addon chat spam?
I was wondering this too. I actually did try "/apr hide help" but no luck.
With version 3.0 (coming out shortly), you will be able to toggle the startup announcement for APR with this command:

Code:
/apr hide startup
/apr show startup
Sorry, but I can't do anything about spam from other addons!
Report comment to moderator  
Reply With Quote
Unread 07-21-16, 10:19 AM  
KyrosKrane
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 27
Uploads: 7
Originally Posted by Spiderkeg
Receiving this error:

Message: ...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:481: Usage: LootSlot(slot)
Time: 07/21/16 09:42:29
Count: 1
Stack: [C]: in function `ConfirmLootSlot'
...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:481: in function `?'
...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:599: in function <...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:598>

Locals: (*temporary) = nil

I should add, the item being looted was a Primal Spirit.
I saw that one time, but it seemed to be because my items cache was corrupted (or possibly just out of date). I exited WoW entirely, then went into the World of Warcraft -> Cache folder, and deleted everything there, then logged back in. That error went away. (DO NOT do this while logged in! Make sure you log out and exit WoW entirely before you do this.)

Please let me know if you get that error again after deleting your cache.
Report comment to moderator  
Reply With Quote
Unread 07-21-16, 07:43 AM  
Spiderkeg
A Deviate Faerie Dragon

Forum posts: 18
File comments: 285
Uploads: 0
Receiving this error:

Message: ...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:481: Usage: LootSlot(slot)
Time: 07/21/16 09:42:29
Count: 1
Stack: [C]: in function `ConfirmLootSlot'
...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:481: in function `?'
...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:599: in function <...AddOns\AnnoyingPopupRemover\AnnoyingPopupRemover.lua:598>

Locals: (*temporary) = nil

I should add, the item being looted was a Primal Spirit.
Last edited by Spiderkeg : 07-21-16 at 08:00 AM.
Report comment to moderator  
Reply With Quote
Unread 08-02-15, 11:04 PM  
Spiderkeg
A Deviate Faerie Dragon

Forum posts: 18
File comments: 285
Uploads: 0
Originally Posted by Petrah
Perhaps you would consider creating an addon to hide login addon chat spam?
I was wondering this too. I actually did try "/apr hide help" but no luck.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.