some refactor
some refactor