Sean: realized we needed to update the constructor def. (my fault; sorry)
Explanation:
If Screen is a Surface, and BattleScreen is a Screen, and if Asgard instantiates and owns the Surface that is the displayed window then:
The program would have to write all 800*600 pixels twice. (which is bad) Once to the BattleScreen, and then once again to the actual display that the user sees.
Now the display Surface is passed to BattleScreen.__init__(..), which it then uses to instantiate Screen. Screen takes that same Surface object and becomes it. I.e., the Surface is passed in as Screen.__init__()'s "self" parameter. Very confusing, and I should have caught it earlier.