if defined must be inside block