added comments to see what's going on