this macro should live in this component