convert to commonjs; add components