uses scheduler