Refactor to implement Payable interface