internal defs.