adds highly commented version