added halt macro