Closure Properties of Context-Free Languages