use a huge window, not fullscreen
add interface for running IO actions
make alternate state mapping more versatile