step 4: models + views