added data, abstract emulator, and emulator classes.