Implemented Factories to Generate Project Objects

Replaced Function Scopes used previously to overcome Module Caching