major refactor to add webpack and gulp