changed to multimodule structure