core:lang store ids as weakref but return ref instead of weakref when accessing