updated FMM