Feature/payment refactoring

Essas alterações resolvem a tarefa #42.