adopted from Mach 2.5