refactored watch