Step 1: unit tests
Step 2: integration tests
Final solution