code from Lazy AEM dev http://adapt.to/2014/en/schedule/the-lazy-aem-developer--sling-models-sightly-in-action-.html