Method types
All before methods run first, most-specific first. Before methods are typically used for argument checking and setup
Then the most-specific primary method runs (call-next-method will run next-most-specific primary method).
Then all after methods run, least-specific first. After methods do cleanup, recording, etc.