updated to discuss JavaScript implementations