area model + tests