Better random, double dispatch framework