Replaceable Implementations for Agent-Based Simulations