Added headers and additional commenting