Fixing some naming styles
Added _underscore as a dependency
Added TODOs, and new tests
merge with latest from origin