I can tell you right away that you'll most probably waste more memory trying to maintain some kind of bidirectional binding between the pojos and observable properties in a ViewModel. You'll use less memory if the pojos are just DTOs. They can be garbage collected right after they have populated the new domain objects.