Adding all of the code