changing overall architecture