made func_alt lazily assign alt ids