added abastract delcaration ability