Added timeout decorator