Add more comments (Very important) Need to tidy up code