payment object refactored