always destroy child widget as pattern