Classes easing the creation of interactive scripts

@appaquet @jgagnon1