bugfix: nedd to think hard to make a good mt_function class