@startuml
!include theme.ipuml
class LoopManager {
	+static LoopManager& getInstance()

	+void loop()
	+void setup()
	-void render()
	-void processInput()
	-void fixedUpdate()
	-void update()
	-bool gameRunning
	-LoopManager()
}

class LoopTimer {
	+static LoopTimer& getInstance()
	+void start()
	+void update()
	+float getLag()
	+float getFixedDeltaTime()
	+void advanceFixedUpdate()
	+void enforceFrameRate()
	+float getDeltaTime()
	-float lag
	-float fixedDeltaTime
	-float deltaTime
}

LoopManager --> LoopTimer : uses
LoopManager : loop()
LoopManager : |-- processInput()
LoopManager : |-- fixedUpdate()
LoopManager : |-- update()
LoopManager : |-- render()
' TODO: what is this supposed to be?
@enduml