added most new changes