Fix #2 & refactor interactive types