added toggling, clear, destroy functions