backup; up next: optimization, programs care for their own attributes/uniforms