temporal implementation