Refactoring@v2

cc @dosyara