temporal functions