doesn't need to be interactive