Full refactor and code cleaned
Merge branch 'refactor'