abstracted over different refresh interval types