added most function arity macros