Всем привет. Столкнулся с такой проблемой: при попытке привести загруженный контент с document class BingoGame к интерфейсу IBingoGame методом

Код AS3:
var game:IBingoGame = (loader.content as IBingoGame)
в переменную попадает null, при попытке привести методом

Код AS3:
var game:IBingoGame = IBingoGame(loader.content)
возникает ошибка

Код:
TypeError: Error #1034: Type Coercion failed: cannot convert bingo.game::BingoGame@1bfdb0b1 to bingo.interfaces.IBingoGame.
at bingo.shell::TabContent/::eventDownloadComplete()
при этом, если обратится к загруженному контенту так:

Код AS3:
(loader.content as MovieClip).activate(true);
то public функция activate, которая описана в интерфейсе, прекрасно вызывается.
Для наглядности привожу структуру зависимостей классов проекта (а может она вовсе не наглядная, но я старался

):
Вообще смутили меня две вещи:
1. Если загрузить игру в главную флэшку (в Shell), то она прекрасно приводится к своему интерфейсу.
2. Если в лоадере написать:

Код AS3:
IBingoGame(loader.content);
то в дальнейшем, когда лоадер отдаст классу TabContent указатель на loader.content - в нем можно будет без проблем привести контент к интерфейсу игры - этот момент вообще похож на шаманство.
Лоадер загружается в главную флэшку shell один раз, затем из него берется класс LoaderBar и в дальнейшем, при с создании нового таба, создается экземпляр этого класса.
Прикрепляю файл с рисунком-схемой в zip-архиве, т.к. вложенный рисунок стал каким-то маленьким и неудобочитаемым