Abstract and turn into interfaces various classes and objects