Lots more refinement. Still need to do more splitting up of stuff though