separate concerns wrt task switching and running