added improved definition of freeo