design: added timer function decorator