Revised behaviour macros to make more flexible