getRootNode() and isSubscribable(): are they really needed from the service? Or could we put them in a Utils class? E.g. CoreUtils?