descent can be null