Explictely pass self to macros to satisfy macro hygiene