Feature/npm

Reorganize Gathering as a Node module