explanation of "free" function application