updated with visible destroyAll method