change architecture a bit