Add simulation stuff from feature/simulation branch