Splitting out Interfaces and Exceptions