only define if not defined macro