check null unread
add check max stack size
add peek
add many parsers ... progress (not tested)