Extract watching logic into separate file
Remove synchronized