Port to macros, maybe