implemented or macro