some refactor
refactor