Фишка haXe, основанная на блоках

Фишка, основанная на блоках. Приведу пример.

Например мне нужен класс, в котором будет содержаться массив 10x10 из произвольных Int-ов в диапазоне 0...9. И мне всё равно как он устроен внутри. Никаких лишних функций вроде Array10x10.setup() вызывать я не хочу. Я делаю так:

class Array10x10
{
        static public var data:Array<Array<Int>>;
        static var setup =
        {
                data = new Array<Array<Int>>();
                for (i in 0...10)
                {
                        data[i] = new Array<Int>();
                        for (j in 0...10)
                                data[i][j] = Std.random(10);
                }
        }      
}

class Main
{
        static function main()
        {
                for (i in Array10x10.data) trace(i);
        }
}

Внутри такого setup-а можно выполнять любые инструкции. И этот setup не нужно запускать из Main.
Можно сказать, что таким образом мы можем создать множество функций, работающих как main.