Perchè definisci 4 classi diverse invece di utilizzarne una sola?
Che significato ha ^ all'esterno di una classe?