uncomplicated the macro and function