add log impl