This sort of works better, but there needs to be more encapsulation; the scenes shouldn't actually be doing this much work.