a lot javascript improve