Why do we need `doLayout` here?