changed subscribers to use hash object instead of array