parent could sometimes be undefined