Replaced klass and protocol properties with ivars to prevent method hiding.