peekable, make get more strict