first pass
second pass
third pass
Merge pull request #7 from twokul/refactoring2

Refactoring2