added macros; handle form correctly