Agent-based modeling: an introduction and primer