support different water sources