All demos uses same patten. Every demo is self contained except systems and components which was splitted into different files to enable sharing them between demos. Every demo has same functions: * register - called on start for registering proces * initialize - called after register to initialize demo data * deinitiliaze - called when demo is switching. There data is deisposed * loop - it's called every frame