added log functions