To be fair about Interfaces and implementations- when you&#x27;re using DI and Aspects, or really any type of framework that is going to be proxying your classes it is a good idea to code to an Interface, even if you only have one implementation.<p>I read a few great articles on this a long time ago and unfortunately I don&#x27;t have the references at hand, but it was compelling enough that I Interface anything that&#x27;s going to be proxied or injected.<p>That being said, I REFUSE to call anything an Impl. If I have an interface called FileSavingService, I&#x27;ll have a LocalFileSavingService or an S3FileSavingService, but I&#x27;ll chop my fingers off before I add Impl to the end of them.