Commenting and some minor changes. Mainly naming conventions. Tested and working.