protected IList GetCollection(object source, string propertyName, object value)
{
var collectionPropertyName = propertyName.Pluralize();
var collectionProperty = source.GetType().GetProperty(collectionPropertyName);
var collection = collectionProperty == null ? new[] {value} : (IList) collectionProperty.GetValue(source, null);
return collection;
}