# Dependency invertion proposal (ListingManager)
```
Item
{
tokenAddr,
tokenId,
startDate,
endDate
}
```
```
AuctionData inherits Item
{
currency,
buyNowPrice,
reservedPrice,
minBidStep,
}
```
```
FixedPriceData inherits Item
{
currencies,
buyNowPrices,
}
```
```mermaid
sequenceDiagram
title: Create Auction/FixedPrice Listing
#-------
actor Seller
actor Buyer
#-------
participant EnglishAuctionStrategy
participant FixedPriceStrategy
participant ListingManager
Seller->>EnglishAuctionStrategy: createAuction(auctionData)
EnglishAuctionStrategy->>ListingManager: createListing(tokenAddr, tokenId, startDate, endDate)
Seller->>FixedPriceStrategy: createAuction(fixedPriceData)
FixedPriceStrategy->>ListingManager: createListing(tokenAddr, tokenId, startDate, endDate)
Buyer->>ListingManager: getListing(...)
ListingManager-->>Buyer: returns strategy
Buyer->>FixedPriceStrategy: placeBid(...)
FixedPriceStrategy->>ListingManager: isStillActive(...)
alt isStillActive(...)
ListingManager--)FixedPriceStrategy: check status, startDate and endDate
end
```