reimplemented common underscore utilities