added expiration feature