basic watch loop