(you are going to see a lot of comments about coding style, during the first week or so)