Extended model
Introduced Repository concept
Added missing files