possible to pass user defined log functionallity