head should be positioned absolutely
allow for a head to be updated to be empty by passing back e.g. an empty string. Pass back null or undefined to avoid updating it