It would be cleaner to not support $core = null in the first place - just call it $core = 'default' and then we could ditch service_singleton. I guess the bigger problem here is all the statics flying around.