checking number of arguments before applying macro