code is now properly commented