Tons of changes and cleanup. Is now broken. Will save in MBM