old semantics macros; should move to github soon