duke's LM funcs