Step 3 (no refactoring necessary)
Step 4