allow using different decay methods