ass
Revival
Unfinished: Breaking up tool effects into individual classes for clarity and modularity.
(cherry-picked from 8f9d279)