Refactor code

You can design whether you want to merge back to master branch

Or at least take a look on my commits on what did I make changes