Added loads of comments, TODO list