yes, in general interface would be better. I use some methods that does not come from the interface:

* getDetails
* setDetails
* getCurrency

the corner stone problem here is relation between `Order` and `PaymentDetails`. Once we agreed on how to solve it we can come back to this interface issue.