refactor
add log