First working version
Improved structure & specs