accept properties in MediaEvent constructor, make class dynamic so object properties can be enumerated/copied when cloning