Designing agent-based market models