update es5
two versions
es5 implementation