first pass complete, saving improvements and support will be done after schema change