macros and shared examples