improved Offer class