add design_pattern_of_observer and random_probablity