adding observer counting support