initial `watch` implementation, doesn’t work for now due to some Dart VM bugs