it should also cancel previous request if not done when a new one is made
it should also cancel previous request if not done when a new one is made