made MapProperties simpler through the power of generics