refactor + improve watch feature