       else
         throw new Error("Invalid compound method")
 
-  if isScore
-    score
   # For not queries, check that all tests have failed
-  else if type is "$not"
+  if type is "$not"
     passes is 0
   # $or queries have failed as no tests have passed
   # $and queries have passed as no tests failed

parseGetter = (getter) ->
  return if typeof getter is 'string' then (obj, key) -> obj[getter](key) else getter

runQuery = (items, query, getter, first, isScore) ->
  if arguments.length < 2
    # If no arguments or only the items are provided, then use the buildQuery interface
    return buildQuery.apply this, arguments
  if getter then getter = parseGetter(getter)
  query = single(parseQuery(query), getter, isScore) unless (utils.getType(query) is "Function")

  if first
    fn = utils.find

# This function should accept an obj like this:
# $and: [queries], $or: [queries]
# should return false if fails
single = (queries, getter) ->
  getter = parseGetter(getter) if getter
  (model) ->
    for queryObj in queries
      # Early false return if any of the queries fail
      return false unless performQuerySingle(queryObj.type, queryObj.parsedQuery, getter, model)
    # All queries passes, so return true
    true

performQuerySingle = (type, query, getter, model) ->
  passes = 0
  score = 0
  scoreInc = 1 / query.length
