updated part of code - removing unucessare abstract from interafaces