updated source with comments to help