Adding the entire code to github.