Adding files
Add pretty much all of the code