add macros-based constructive example