can probably wrap up macros with delays as typed_macro