updated architecture