Feature/wallet refactor