introducing a scheduler