added assert macro