some refactoring
first commit