@startuml
skinparam nodesep 10
skinparam ranksep 30
abstract class Trade {
to: Agent
}
abstract class Transfer
abstract class Organize
"Associate" <|-- Organize
"Associate" <|-- Transfer
Organize <|-- Reserve
Organize <|--- "Cancel\nReservation"
Transfer <|-- Receive
"Associate" <|-- Trade
Trade <|-- Sell
Trade <|-- Donate
Trade <|-- Pay
Trade <|-- Rent
Trade <|-- "Dispose\nProduct"
@enduml