added some comments with some thoughts on improvements that are required