Step 1: unit tests
Step 2: integration tests