defined various macro helper