Separate services for models, unobfuscated properties on objects, use ArrayCollection for domain models, modularize controllers