reorganize code, add grunt for building/linting