macro and view util