Added gitignore
Renamed folders
Added generics