Re-thinking flow: a cognitive science model and applications to video game design.