added protected method and member variable