variuos optimizations and bugfixes
watchcollection optimized by using hashes