Largest update, now need to debug.