added macros and shared examples for testing