implemented logger