adding abstract metods.