### 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 ...