supports logging