update all code to stay free