implement destroyer to prevent too many objects