Adding include guards and making methods virtual.