making sure we're not altering the set while enumerating

added macro for h file property
tests