added webpack, split into modules