removed dependency on underscore