first commit
refactoring
some comments