Macro for block self