moved around macro stuff for easier definition