### Strategies:
```plantuml
@startuml
class StratUIManager {
    - workspaceManager
    - targetEl
    - formElement
    --
    + initUI(targetId, formElId)
    + displayForm(action, strategyData = null)
    + hideForm()
    + updateStrategiesHtml(strategies)
    + toggleFeeInput()
    + registerDeleteStrategyCallback(callback)
}

class StratDataManager {
    - strategies
    --
    + fetchSavedStrategies(comms, data)
    + addNewStrategy(data)
    + updateStrategyData(data)
    + removeStrategy(name)
    + applyBatchUpdates(data)
    + getAllStrategies()
}

class StratWorkspaceManager {
    - workspace
    - blocksDefined
    - MAX_TOP_LEVEL_BLOCKS
    --
    + initWorkspace()
    - loadModulesAndInitWorkspace()
    + adjustWorkspace()
    + compileStrategyJson()
    - generateStrategyJsonFromWorkspace()
    - categorizeOrphanedBlocks(workspace)
    - createStrategyJson(initializationBlocks, actionBlocks)
    + loadWorkspaceFromXml(workspaceXmlText)
}

class Strategies {
    - dataManager
    - workspaceManager
    - uiManager
    - comms
    - data
    - _initialized
    --
    + initialize(targetId, formElId, data)
    + handleStrategyError(errorData)
    + handleStrategies(data)
    + handleStrategyCreated(data)
    + handleStrategyUpdated(data)
    + handleStrategyDeleted(data)
    + handleUpdates(data)
    + resizeWorkspace()
    + generateStrategyJson()
    + restoreWorkspaceFromXml(workspaceXmlText)
    + submitStrategy(action)
    + deleteStrategy(name)
}

' Relationships
Strategies --> StratDataManager
Strategies --> StratWorkspaceManager
Strategies --> StratUIManager
StratUIManager --> StratWorkspaceManager

@enduml


...