#12 add 'eof'