free-my-tv decisions: why the code looks like this