add several new relatively untested defuns/macros