First requirements and macro