added empty() to Peekable