Override remove to clean up subviews properly