Made some classes more abstract