add support for array-like objects
add support for suming objects without a callback