I added quite a few more comments across this class