Add generator, generate_observations() so observations can be simulated [reviewed]