added uniform-cost search