I should really make smaller commits...

Changed the hierarchy and delegated responsibility to helper objects for all the immutable values code (eg. setParent(..) which actually creates a clone with the new parent and replaces the old Processor with the new one, and lets it reintegrate itself in the system).