added typedef explanation