Hard refactoring with fix #8
End refactoring
Merge pull request #12 from twinslash/refactoring

Hard refactoring with fix #8
Close #9