I think it would be better to delay the listener calls just before the service is called first
in offsetGet, check initialized and call the listeners if not,(then set initialized = true)

This allows listeners to be added after the service is declared