make more use of underscore

_.extend(service.prototype, {})
_.isUndefined(value)
// something like _.chain(properties).every(_.isArray).flatten() is probably better
var propertiesAreArrays = _.every(properties, _.isArray);