Inside discrete-event simulation software: how it works and why it matters