Adding all the files from my original attempt.