[Refact] Create a slot model
[Refact] Compact the code (code factorization)