some refactoring
some refoctoring