- A decorator is a thing* that takes a function and returns another function
- The new function will do everything the old function does, plus some other stuff
- Every function passed through the same decorator will have the same new functionality
*it's a function, but if I said that up there it'd be confusing