Reworked screens.js, much more flexible now, allowing branching