simple greedy and random finished, some bugs still exist