finished water pouring, need refactoring, and comparing with python version