make some refactoring