Initial commit with data model
Add presentation layer
Add missing files
Presentation layer and global infrastructure