Helps avoiding dependency problems, because client code is no longer coupled to the implementation class