practicing agent-based modelling from scratch