new log implementation