add randomize feature, and break