initial commit
refactoring
refactoring