refactored to remove coallesce uniforms, now handled by reflect
fixed missing doLink() call, refactored to remove duplicated code