functions built into the script