naive watch implementation