Components now store a raw pointer to the parent Entity rather than a weak_ptr. The lifetime of components is tied to their parent entity and so weak_ptr::lock() was always guaranteed to succeed.