New cleaned up version with revised  project structure