made show / hide more robust