@jspricke What's your opinion on this? Should we use the `static_pointer_cast`?