New internal functions