functions return undefined by default