added underflowerror, modified peek