updated internal function to avoid collisions.