added loads of comments