Payment refactored