initial commit
refactoring