@startuml !include skinparams.puml class IO { processComand() } class EngineCore { setBoardsize() clearBoard() setKomi() setFixedHandicap() play() genmove() undo() } !include GameState.pumlc 'class EngineBoard { ' setSize() ' setKomi() ' play() ' undo() '} class EngineAI { genmove(board) } IO --> EngineCore EngineCore --> GameState EngineCore --> EngineAI @enduml