change log implementation