add WateringAlgorithm and update main