who will call this function and what's its purpose