fixed macro expansion bug where we werent expanding arguments; added primitive block