scheduler should first trigger immediately then trigger at the time intervals
adding specs for the new model and more refactor