Improves basic setup, segregates modules, introduces dependencies