startup listener and cache