cleanup, add functions condition_on, predict, and sample_gaussian