implement more independent logger