add macros for nicer syntax