Improvement to the ticking system, replace run() by onTick(), add onStart() and onStop()

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>
Begin work on snapshot system

Signed-off-by: Aleksi Sapon <QcTechs@gmail.com>