added a few comments at the top