A transparent multithreaded 2D agent-based simulator based on RepastJ