formatting, organization, it's okay to free(NULL)