Run successfully. Haven't test its correctness yet..