implemented time decay