Text this: The design and implementation of a self-extending general purpose discrete event simulation language