NWCK commented, improved, TESTED, ACCEPTED