add logging implementation