Added loads of comments