don't use scheduler singleton