logging implementation
merge