Implement macro system