added some defending methods