Improved component.update cycle