redesign the logger