Intial Version with Modularity