Well i think i made dependency inversion regarding response and request. Also to avoid getters i used generics. Well they have been used pretty almost everywhere.