Uhm IIRC @stloyd has already implemented a macro for this, we must reuse it.