Classes that implement interfaces generally should be called the true name of the class; no need to include the word “Impl”. For example, if an interface is called FaceletProvider, don't create an implementation called FaceletProviderImpl, because the whole idea of interfaces is that there would be many users of it.
Tip: If there is a default implementation, add the word Default to the classname; eg. DefaultFaceletProvider.
Also, it's not always important to include the name of the interface in the implementing class. For example, just because an Invoice happens to implement the Storable interface does not mean the class must be renamed to StorableInvoice. If the class then implemented Approvable, it would not be renamed to ApprovableStorableInvoice. It is still just an Invoice.