polling can handle different types when running and when finished