separated timer into service so it can run in background