@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