watch now handles flags smarter, and some inner refactoring