goal is to optimize for a more real world, rather than a simplified example