Finished, works but could do with some tidying