extracts awkward hasOwnProperty calls
use underscore methods to whitelist options
uses underscore to extend prototype
removes unused comparator method
cleans up function extension
fixes indentation
extracts awkward slice method